The present invention relates in general to the field of computing. More specifically, the present invention relates to systems and methodologies for improving the success rate of transactional memory operations.
Computer systems that allow multiple concurrently executing threads sometimes allow access to shared memory location. Writing multi-threaded programs can be difficult due to the complexities of coordinating concurrent memory access. One approach to controlling concurrent access is the use of transactional memory. In a transactional memory system, a section of code can be designated to be a transaction. The transaction executes atomically with respect to other threads of execution within the transactional memory system. For example, if the transaction includes two memory write operations, then the transactional memory system ensures that all other threads may only observe the cumulative effects of both memory operations or of neither, but not the effects of only one memory operation.
Current implementations of transactional memory limit the number of cache lines (transaction footprint) in a transaction for several different reasons. A transaction is aborted if the core sends out additional cache line requests that are not related to the transactions that will force the eviction of transaction cache lines from the caches, thus impacting the performance of the transaction.